package br.rui.servlets;

import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.rui.dominio.Cliente;
import br.rui.dominio.ContaOutros;
import br.rui.dominio.ContaRui;
import br.rui.persistencia.ContaDB;
import br.rui.persistencia.util.Leitor;
;

/**
 * Servlet Class
 *
 * @web.servlet              name="ImportarDados"
 *                           display-name="Name for ImportarDados"
 *                           description="Description for ImportarDados"
 * @web.servlet-mapping      url-pattern="/importar"
 * @web.servlet-init-param   name="A parameter"
 *                           value="A value"
 */
@SuppressWarnings("serial")
public class ImportarDados extends HttpServlet {

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException,IOException {
		ContaDB conta = new ContaDB();
		int key = Integer.parseInt(req.getParameter("key"));
		switch (key) {
		case 1:
			try {
				String arquivo = req.getParameter("arquivo");
				Collection clientes = Leitor.ler(arquivo);
				Iterator iter = clientes.iterator();
				while (iter.hasNext()) {
					conta.CadastraCliente((Cliente) iter.next());
				}
				resp.sendRedirect("/web/jsp/sucesso.jsp");
			} catch (Exception e) {
				resp.sendRedirect("/web/jsp/falha.jsp");
			}
			break;
		case 2:
			try {
				int codCliente = Integer.parseInt(req.getParameter("codCliente"));
				String arquivo = req.getParameter("arq_pcrui");
				Collection itens = Leitor.lerLayoutPCRui(arquivo);
				Iterator iter = itens.iterator();
				while (iter.hasNext()) {
					ContaRui contarui = (ContaRui)iter.next();
					contarui.setCodCliente(codCliente);
					conta.CadastraPCRui(contarui);
				}
				resp.sendRedirect("./jsp/sucesso.jsp");
			} catch (Exception e) {
				e.printStackTrace();
				resp.sendRedirect("./jsp/falha.jsp");
			}
			break;
			
		case 3:
			try {
				int codCliente = Integer.parseInt(req.getParameter("codCliente"));
				String arquivo = req.getParameter("arq_pcclientes");
				Collection itens = Leitor.lerLayoutPCCliente(arquivo);
				Iterator iter = itens.iterator();
				while (iter.hasNext()) {
					ContaOutros contaoutros = (ContaOutros)iter.next();
					contaoutros.setCodCliente(codCliente);
					conta.CadastraPCCliente(contaoutros);
				}
				resp.sendRedirect("./jsp/sucesso.jsp");
			} catch (Exception e) {
				resp.sendRedirect("./jsp/falha.jsp");
			}
			break;
		default:
			System.err.println("nao foi escolhida nenhuma opcao");
			break;
		}
	}

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException,
		IOException {
		doGet(req, resp);
	}

}
